package com.mingshine.cloud.config;

import org.springframework.amqp.core.FanoutExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ExchangeConfig {


    /**
     * 消息交换机的名字
     */
    public static final String TEST_EXCHANGE = "TEST_EXCHANGE";     //广播交换机


    /**
     * TODO
     * 1.定义fanout exchange，绑定广播队列【RabbitMqConfig.FANOUT_EXCHANGE】到路由器
     * 2.durable="true" rabbitmq重启的时候不需要创建新的交换机
     * 3.direct交换器相对来说比较简单，匹配规则为：如果路由键匹配，消息就被投送到相关的队列
     * fanout交换器中没有路由键的概念，他会把消息发送到所有绑定在此交换器上面的队列中。
     * topic交换器你采用模糊匹配路由键的原则进行转发消息到队列中
     * key: queue在该fanout-exchange中的key值，当消息发送给fanout-exchange中指定key为设置值时，
     * 消息将会转发给注册在【RabbitMqConfig.FANOUT_EXCHANGE】这个交换机上面的所有的queue参数指定的消息队列
     */
    @Bean
    public FanoutExchange deviceMinaExchange() {
        FanoutExchange fanoutExchange = new FanoutExchange(ExchangeConfig.TEST_EXCHANGE, true, false);
        return fanoutExchange;
    }


}